Register Allocation Optimization in a Kaffe Based Dynamic Compilation

ثبت نشده
چکیده

Dynamic compilation and optimization are widely used in heterogeneous computing environments, in which an intermediate form of the code is compiled to native code during execution. An important tradeoff exists between the amount of time spent dynamically optimizing the program and the running time of the program. In this paper, we explore this trade-off for an important optimization – global register allocation. I present a graph-coloring register allocation in a Kaffe based JIT that has been redesigned for runtime compilation. Compared to ChaitinBriggs, a standard graph-coloring technique, the reformulated algorithm requires considerably less allocation time and produces allocations that are only marginally worse than those of Chaitin-Briggs. The experimental results indicate that the allocator performs better than the linearscan and Chaitin-Briggs allocators on most benchmarks in a runtime compilation environment. By increasing allocation efficiency and preserving optimization quality, the presented algorithm increases the suitability and profitability of a graphcoloring register allocation strategy for a runtime compiler.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Region-based Register Allocation for EPIC Architectures

Instruction-level parallelism(ILP) refers to a family of processor and compiler design techniques that speed up execution by allowing individual machine operations to execute in parallel. Explicitly Parallel Instruction computing (EPIC) processors evolved in an attempt to achieve high levels of ILP without significant hardware complexity. To take advantage of higher level of ILP in EPIC, the IL...

متن کامل

Incorporating Better Register Allocation into Jikes

In dynamically compiled code, it is important not only that the compiler produce fast code, but also that the compiler itself costs little overhead to the runtime application. These two competing goals motivate the importance of accurate cost-benefit analysis for any optimizations performed in a dynamic compilation system. The Jikes RVM, which performs Just-In-Time (JIT) compilation of Java byt...

متن کامل

Trace Register Allocation Policies

Register allocation is an integral part of compilation, regardless of whether a compiler aims for fast compilation or optimal code quality. State-of-the-art dynamic compilers often use global register allocation approaches such as linear scan. Recent results suggest that non-global trace-based register allocation approaches can compete with global approaches in terms of allocation quality. Inst...

متن کامل

Live Range Hole Allocation in Dynamic Binary Translation

Dynamic Binary Translation (DBT) has been used as an approach to transparently run code on different architectures and has generally made use of runtime information to perform effective dynamic compiler optimization. Dynamic optimization techniques are hard to design, as they have to improve code performance under stringent runtime constraints. In this paper we present preliminary work on a cod...

متن کامل

Decoupled approaches to register and software controlled memory allocations. (Approches découplées aux problèmes d'allocations de registres et de mémoires locales)

Register and local memory allocation are two important optimizations performed during compilation. The former optimization maps the variables of a program to either machine registers or main memory locations. The latter one maps arrays to either local memory or main memory locations. Recent work in register allocation leverages the complexity and performance bene ts of decoupling its allocation...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2017